from langchain.agents import AgentExecutor,create_tool_calling_agent
from tool.login_tool import LoginTool
from tool.email_tool import EmailTool
from tool.change_password_tool import ChangePasswordTool
from model.my_chat_model import ChatModel
from langchain_core.prompts import ChatPromptTemplate
def create_login(question):
    #获取大模型
    chat = ChatModel()
    llm = chat.get_line_model()
    #创建工具
    tools = [LoginTool(),EmailTool(),ChangePasswordTool()]
    #创建提示词模板
    prompt = ChatPromptTemplate([
        ("system", """
             你是一个智能的AI查询助手，你可以使用以下几个工具
             1 get_login_tool 主要用于完成系统的登录功能
             2 get_email_tool 用于发送邮件信息的
             3 get_changepassword_tool 用于修改密码的
             如果用户的提问的问题是系统登录功能，就执行工具  get_login_tool，
             如果用户的提问的问题时修改账号密码，就执行 get_changepassword_tool
             如果是发送邮件信息 get_email_tool, 

            """),
        ("human","{input}"),
        ("placeholder","{agent_scratchpad}")
    ])
    #创建工具调用
    agent=create_tool_calling_agent(llm,tools,prompt)
    #创建智能体执行器
    agent_executor = AgentExecutor(
        agent=agent,
        tools=tools,
        verbose=True
    )
    rs = agent_executor.invoke({"input":question})
    # print(rs)
    return rs["output"]

# if __name__ == '__main__':
# #     # question="请登录系统，用户名：张三，密码是：12345678"
# #     question = "请给3144745263@qq.com发送一份验证码登录邮件，验证码是2034"
#     question = "请修改账号为84488458@qq.com和原始密码为123456的账号密码,新密码为1234567"
#     res=create_login(question)
    # print(res)